90356bd3f32b38874bdd8b30eec3f01ca0591755,inspectit.server/src/main/java/rocks/inspectit/server/service/RegistrationService.java,RegistrationService,registerMethodSensorTypeIdent,#number#String#Map#,226
Before Change
MethodSensorTypeIdent methodSensorTypeIdent;
List<MethodSensorTypeIdent> methodSensorTypeIdents = methodSensorTypeIdentDao.findByClassNameAndPlatformId(fullyQualifiedClassName, platformId);
if (1 == methodSensorTypeIdents.size()) {
methodSensorTypeIdent = methodSensorTypeIdents.get(0);
// update preferences
methodSensorTypeIdent.setSettings(parameters);
methodSensorTypeIdentDao.saveOrUpdate(methodSensorTypeIdent);
} else {
// only if the new sensor is registered we need to update the platform ident
PlatformIdent platformIdent = platformIdentDao.load(platformId);
methodSensorTypeIdent = new MethodSensorTypeIdent();
methodSensorTypeIdent.setPlatformIdent(platformIdent);
methodSensorTypeIdent.setFullyQualifiedClassName(fullyQualifiedClassName);
methodSensorTypeIdent.setSettings(parameters);
Set<SensorTypeIdent> sensorTypeIdents = platformIdent.getSensorTypeIdents();
sensorTypeIdents.add(methodSensorTypeIdent);
methodSensorTypeIdentDao.saveOrUpdate(methodSensorTypeIdent);
platformIdentDao.saveOrUpdate(platformIdent);
}
platformIdentCache.markDirty(platformId);
return methodSensorTypeIdent.getId();
}
/**
After Change
public long registerMethodSensorTypeIdent(long platformId, String fullyQualifiedClassName, Map<String, Object> parameters) {
MethodSensorTypeIdent methodSensorTypeIdent;
try {
List<Long> methodSensorTypeIdents = methodSensorTypeIdentDao.findIdByClassNameAndPlatformId(fullyQualifiedClassName, platformId);
if (1 == methodSensorTypeIdents.size()) {
Long id = methodSensorTypeIdents.get(0);
methodSensorTypeIdentDao.updateParameters(id, parameters);
return id;
} else {
// only if the new sensor is registered we need to update the platform ident
PlatformIdent platformIdent = new PlatformIdent();
platformIdent.setId(platformId);
methodSensorTypeIdent = new MethodSensorTypeIdent();
methodSensorTypeIdent.setPlatformIdent(platformIdent);
methodSensorTypeIdent.setFullyQualifiedClassName(fullyQualifiedClassName);
methodSensorTypeIdent.setSettings(parameters);
methodSensorTypeIdentDao.saveOrUpdate(methodSensorTypeIdent);
return methodSensorTypeIdent.getId();
}
} finally {
platformIdentCache.markDirty(platformId);